package org.bw.bookstore.book.service;

import org.bw.bookstore.common.entity.TbBookDetailed;
import org.bw.bookstore.common.entity.TbBookSingle;
import org.bw.bookstore.common.entity.TbBookType;
import org.bw.bookstore.common.utils.ResponseResult;
import org.springframework.web.multipart.MultipartFile;

/**
 * @program: wisdom_bookstore
 * @description: 书籍接口
 * @author: 孙冬雪
 * @create: 2020-10-25 14:31
 */
public interface BookService {

    /**
     * @Description
     * TODO 孙冬雪--> findAllBookDetailed 查看图书
     * @Param []
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/22 23:22
     **/
    ResponseResult findAllBookDetailed();

    /**
     * @Description
     * TODO 孙冬雪--> addBookDetailed 添加图书信息
     * @Param [bookDetailed]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/23 10:10
     **/
    ResponseResult addBookDetailed(TbBookDetailed bookDetailed);

    /**
     * @Description
     * TODO 孙冬雪--> delBookDetailed 下架图书
     * @Param [bookDetailedId]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/23 10:09
     **/
    ResponseResult delBookDetailed(Integer bookDetailedId, Integer deletedStatus);

    /**
     * @Description
     * TODO 孙冬雪--> updateBookDetailed 修改图书详细信息
     * @Param [bookDetailed]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/23 10:10
     **/
    ResponseResult updateBookDetailed(TbBookDetailed bookDetailed);

    /**
     * @Description
     * TODO 孙冬雪--> findDetailedByRFID 返回未付款书籍详情
     * @Param [rfids]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/23 18:33
     **/
    ResponseResult findDetailedByRFID(String rfids);

    /**
     * @Description
     * TODO 孙冬雪--> findDetailedById 根据ID查找对应书籍信息
     * @Param [id]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/25 14:32
     **/
    ResponseResult findDetailedById(Integer id);

    /**
     * @Description
     * TODO 孙冬雪--> addBookImgBash 批量添加图书插图
     * @Param []
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/24 16:36
     *
     * @param bookImgUrls
     * @param bookDetailedCode*/
    ResponseResult addBookImgBash(String bookImgUrls, String bookDetailedCode);

    /**
     * @Description
     * TODO 孙冬雪--> findBookImgByBook 根据图书查找对应插图
     * @Param []
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/24 16:49
     *
     * @param bookDetailedCode*/
    ResponseResult findBookImgByBook(String bookDetailedCode);

    /**
     * @Description
     * TODO 孙冬雪--> sellBookSingle 售卖图书单品
     * @Param [id]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/23 18:32
     **/
    ResponseResult sellBookSingle(Integer bookSingleId);

    /**
     * @Description
     * TODO 孙冬雪--> addBookType 添加图书类型
     * @Param [bookType]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/22 23:21
     **/
    ResponseResult addBookType(TbBookType bookType);

    /**
     * @Description
     * TODO 孙冬雪--> delBookType 逻辑删除图书类型
     * @Param [bookTypeId]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/22 23:21
     **/
    ResponseResult delBookType(Integer bookTypeId);

    /**
     * @Description
     * TODO 孙冬雪--> updateBookType 修改图书类型
     * @Param [bookType]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/22 23:21
     **/
    ResponseResult updateBookType(TbBookType bookType);

    /**
     * @Description
     * TODO 孙冬雪--> findAllBookType 查找所有图书类型
     * @Param []
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/23 10:20
     **/
    ResponseResult findAllBookType();

    /**
     * @Description
     * TODO 孙冬雪--> findBookTypeById 根据ID查找书籍类型
     * @Param [bookTypeId]
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/25 14:33
     **/
    ResponseResult findBookTypeById(Integer bookTypeId);

    /**
     * @Description 
     * TODO 孙冬雪--> uploadImg 上传书籍图片
     * @Param [file] 
     * @Return java.lang.String
     * @Author 孙冬雪
     * @Date 2020/10/26 11:59
     **/
    ResponseResult uploadImg(MultipartFile file);

    /**
     * @Description 
     * TODO 孙冬雪--> addBookSingle 添加书籍单品
     * @Param [bookSingle] 
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/26 18:42
     **/
    ResponseResult addBookSingle(TbBookSingle bookSingle);

    /**
     * @Description 
     * TODO 孙冬雪--> delBookSingle 删除书籍单品
     * @Param [bookSingleId] 
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/27 9:09
     **/
    ResponseResult delBookSingle(Integer bookSingleId);

    /**
     * @Description 
     * TODO 孙冬雪--> findSingleListByDetailed 根据书籍详情删除单品书籍
     * @Param [bookDetailedCode] 
     * @Return com.bw.servercommon.utils.ResponseResult
     * @Author 孙冬雪
     * @Date 2020/10/27 9:19
     **/
    ResponseResult findSingleListByDetailed(String bookDetailedCode);
}
